home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML Authority.sea / XML Authority / Required / ccs_util.jar / regex / RegExpDebug.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-12-09  |  3.5 KB  |  123 lines

  1. package regex;
  2.  
  3. import java.io.DataInputStream;
  4. import java.io.IOException;
  5.  
  6. class RegExpDebug {
  7.    private RegExpDebug() {
  8.    }
  9.  
  10.    public static String nfaToString(RegExpNFA var0) {
  11.       String var1 = "";
  12.  
  13.       for(int var2 = 0; var0.getNList(var2) != null || var2 == var0.exit(); ++var2) {
  14.          if (var0.getNList(var2) == null) {
  15.             if (var2 == var0.exit()) {
  16.                var1 = var1 + "state " + var2 + ": exit\n";
  17.             }
  18.          } else {
  19.             var1 = var1 + "state " + var2 + ": ";
  20.  
  21.             for(NList var3 = var0.getNList(var2); var3 != null; var3 = var3.next()) {
  22.                var1 = var1 + "(" + var3.chars().toString() + " => " + var3.to() + ") ";
  23.             }
  24.  
  25.             var1 = var1 + "\n";
  26.          }
  27.       }
  28.  
  29.       return var1;
  30.    }
  31.  
  32.    public static void main(String[] var0) {
  33.       RegExp var1 = new RegExp();
  34.       DataInputStream var3 = new DataInputStream(System.in);
  35.  
  36.       try {
  37.          while(true) {
  38.             System.out.println("Pattern ?");
  39.             String var2;
  40.             if ((var2 = var3.readLine()) == null) {
  41.                break;
  42.             }
  43.  
  44.             ((RegExpCore)var1).setPattern(var2);
  45.             System.out.println("Parse \"" + var1 + "\":");
  46.             System.out.println("dump tree...");
  47.             System.out.println(((RegExpCore)var1).treeString());
  48.             System.out.println("dump NFA...");
  49.             System.out.println(((RegExpCore)var1).nfaString());
  50.             System.out.println("dump DFA...");
  51.             System.out.println(((RegExpCore)var1).dfaString());
  52.          }
  53.       } catch (IOException var5) {
  54.          System.out.println(var5);
  55.       } catch (RegExpSyntaxException var6) {
  56.          System.out.println(var6);
  57.       } catch (NFABuildException var7) {
  58.          System.out.println(var7);
  59.       }
  60.  
  61.    }
  62.  
  63.    public static String dfaToString(RegExpDFA var0) {
  64.       String var1 = "";
  65.  
  66.       for(int var3 = 0; var3 < var0.count(); ++var3) {
  67.          var1 = var1 + "state " + var3 + (var0.getDState(var3).accepted() ? "A" : " ") + ": ";
  68.  
  69.          for(DSList var2 = var0.getDState(var3).next(); var2 != null; var2 = var2.next()) {
  70.             int var4;
  71.             for(var4 = 0; var4 < var0.count() && var0.getDState(var4) != var2.to(); ++var4) {
  72.             }
  73.  
  74.             var1 = var1 + "(" + var2.chars().toString() + " => " + var4 + ") ";
  75.          }
  76.  
  77.          var1 = var1 + "... { ";
  78.  
  79.          for(int var8 = 0; var8 < var0.getNfa().count(); ++var8) {
  80.             if (var0.getDState(var3).nfaStateSet().get(var8)) {
  81.                var1 = var1 + var8 + " ";
  82.             }
  83.          }
  84.  
  85.          var1 = var1 + "} ";
  86.          var1 = var1 + "\n";
  87.       }
  88.  
  89.       return var1;
  90.    }
  91.  
  92.    public static String treeToString(RTree var0) {
  93.       String var1;
  94.       switch (var0.operation()) {
  95.          case 0:
  96.             var1 = "EMPTY";
  97.             break;
  98.          case 1:
  99.             var1 = var0.chars().toString();
  100.             break;
  101.          case 2:
  102.             var1 = "(concat " + treeToString(var0.left()) + " " + treeToString(var0.right()) + ")";
  103.             break;
  104.          case 3:
  105.             var1 = "(or " + treeToString(var0.left()) + " " + treeToString(var0.right()) + ")";
  106.             break;
  107.          case 4:
  108.             var1 = "(closure " + treeToString(var0.left()) + ")";
  109.             break;
  110.          case 5:
  111.             var1 = "LHEAD";
  112.             break;
  113.          case 6:
  114.             var1 = "LTAIL";
  115.             break;
  116.          default:
  117.             var1 = "This can't happen in <dumpTree>";
  118.       }
  119.  
  120.       return var1;
  121.    }
  122. }
  123.